import scanpy as sc, anndata as ad, numpy as np, pandas as pd, scvelo as scv
from scipy import sparse
from anndata import AnnData
import warnings
import socket
import holoviews as hv
import plotly.express as px
from matplotlib import pylab
import sys
import yaml
import os
from pandas.api.types import CategoricalDtype
import plotly
import matplotlib.pyplot as plt
warnings.filterwarnings('ignore')
plotly.offline.init_notebook_mode()
%matplotlib inline
sc.settings.verbosity = 3 # verbosity: errors (0), warnings (1), info (2), hints (3)
sc.logging.print_header()
sc.settings.set_figure_params(dpi=50, facecolor='white')
pylab.rcParams['figure.figsize'] = (9, 9)
outBaseName = "04.1B_Progenitors_DA"
figDir = "./figures"
scanpy==1.8.1 anndata==0.7.6 umap==0.4.6 numpy==1.20.2 scipy==1.6.3 pandas==1.2.4 scikit-learn==0.24.2 statsmodels==0.13.1 python-igraph==0.9.8 louvain==0.7.1 pynndescent==0.5.5
hostRoot = "-".join(socket.gethostname().split('-')[0:2])
with open(os.path.expanduser('~')+"/paths_config.yaml", 'r') as f:
paths = yaml.load(f, Loader=yaml.FullLoader)
#indir=paths["paths"]["indir"][hostRoot]
outdir="./outdir"
FinalLeaf="/Progenitors"
#projectBaseDir=paths["paths"]["projectBaseDir"][hostRoot]
with open("./colorMap.yaml", 'r') as f:
colorMap = yaml.load(f, Loader=yaml.FullLoader)["uns_colors"]
colorMap
{'medial': {'color': '#CD5C5C'},
'distal': {'color': '#FFCBCB'},
'proximal': {'color': '#8D021F'},
'piece1': {'color': '#281E5D'},
'piece2': {'color': '#3779FF'},
'piece3': {'color': '#BFD4FF'},
'control': {'color': '#0056D1'},
'polaroid': {'color': '#DE001E'},
'enriched': {'color': '#DE001E'},
'not_enriched': {'color': '#0056D1'},
'pfc': {'color': '#DE001E'},
'somatosensory': {'color': '#E5E4E2'},
'temporal': {'color': '#0056D1'},
'motor': {'color': '#37F7C8'},
'v1': {'color': '#28F30C'},
'parietal': {'color': '#D41FFC'}}
adataAll = sc.read_h5ad(outdir+"/3_polaroid_quickAnno.h5ad")
adataAll
AnnData object with n_obs × n_vars = 18822 × 28371
obs: 'dataset', 'organoid', 'region', 'type', 'type_region', 'regionContrast', 'n_genes_by_counts', 'log1p_n_genes_by_counts', 'total_counts', 'log1p_total_counts', 'total_counts_mt', 'log1p_total_counts_mt', 'pct_counts_mt', 'total_counts_ribo', 'log1p_total_counts_ribo', 'pct_counts_ribo', 'n_genes', 'is.Stressed', 'leiden0.3', 'leidenAnno'
var: 'mt', 'ribo', 'n_cells_by_counts', 'mean_counts', 'log1p_mean_counts', 'pct_dropout_by_counts', 'total_counts', 'log1p_total_counts', 'n_cells', 'highly_variable', 'mean', 'std'
uns: 'dataset_colors', 'dendrogram_leidenAnno', 'diffmap_evals', 'draw_graph', 'is.Stressed_colors', 'leiden', 'leiden0.3_colors', 'leidenAnno_colors', 'neighbors', 'organoid_colors', 'pca', 'rank_genes_groups', 'regionContrast_colors', 'region_colors', 'type_colors', 'umap'
obsm: 'X_diffmap', 'X_draw_graph_fa', 'X_pca', 'X_umap'
varm: 'PCs'
obsp: 'connectivities', 'distances'
scv.tl.score_genes_cell_cycle(adataAll)
calculating cell cycle phase
computing score 'S_score'
finished: added
'S_score', score of gene set (adata.obs).
543 total control genes are used. (0:00:00)
computing score 'G2M_score'
finished: added
'G2M_score', score of gene set (adata.obs).
415 total control genes are used. (0:00:00)
--> 'S_score' and 'G2M_score', scores of cell cycle phases (adata.obs)
sc.pl.umap(adataAll, color=["leiden0.3","phase"] ,size = 30, add_outline = True,outline_width=(0.2, 0.05), frameon=False)
... storing 'phase' as categorical
adataAll.obs["Progenitor"] = "Other"
adataAll.obs.loc[(adataAll.obs["leiden0.3"].isin(["5","4"])) & adataAll.obs["phase"].isin(["G1"]),"Progenitor"] = "NonCyclingProgenitor"
adataAll.obs["Progenitor"]
sc.pl.umap(adataAll, color="Progenitor", groups=["NonCyclingProgenitor"] ,size = 30, add_outline = True,outline_width=(0.2, 0.05), frameon=False)
... storing 'Progenitor' as categorical
adata = adataAll.raw.to_adata().copy()
del adata.var["highly_variable"]
adata.obs = adataAll[adata.obs_names].obs.copy()
del adata.uns
del adata.obsm
adata = adata[adata.obs["Progenitor"] == "NonCyclingProgenitor"]
for md in [md for md in adata.obs.columns if "leiden" in md and md != "leiden0.3"]:
del adata.obs[md]
adata.uns["regionContrast_colors"] = [colorMap[i]["color"] for i in adata.obs["regionContrast"].cat.categories]
adata.uns["region_colors"] = [colorMap[i]["color"] for i in adata.obs["region"].cat.categories]
adata.uns["type_colors"] = [colorMap[i]["color"] for i in adata.obs["type"].cat.categories]
Trying to set attribute `.uns` of view, copying.
obsTupleToMap = ("region","leiden0.3")
SankeyDF=adata.obs[list(obsTupleToMap)]
SankeyDF.columns = ["region","leiden0.3"]
SankeyDF = SankeyDF.groupby(['region','leiden0.3']).size().reset_index().rename(columns={0:'count'})
SankeyDF=SankeyDF[SankeyDF["count"] != 0]
hv.extension('bokeh')
sankey1 = hv.Sankey(SankeyDF, kdims=["region", "leiden0.3"], vdims="count")
sankey1.opts(cmap='Colorblind',label_position='left',
edge_color='region', edge_line_width=0,
node_alpha=1.0, node_width=40, node_sort=True,
width=900, height=700, bgcolor="snow")
# Given the epxloratory phase as many genes were retained
VERTICAL_HVGs = {}
for group in adata.obs.type_region.unique():
adata_group = adata[adata.obs.type_region == group].copy()
HVGsDF = sc.pp.highly_variable_genes(adata_group, min_mean=0.0125, max_mean=3, min_disp=0.5, inplace=False, batch_key="organoid")
VERTICAL_HVGs[group] = set(HVGsDF[HVGsDF["highly_variable_nbatches"] == 3].index)
VERTICAL_HVGs = set.union(*list(VERTICAL_HVGs.values()))
extracting highly variable genes
finished (0:00:00)
extracting highly variable genes
finished (0:00:00)
extracting highly variable genes
finished (0:00:00)
extracting highly variable genes
finished (0:00:00)
extracting highly variable genes
finished (0:00:00)
extracting highly variable genes
finished (0:00:00)
len(VERTICAL_HVGs)
2237
import itertools
# Setting up contrasts
proximal = ["polaroid1_proximal","polaroid2_proximal","polaroid3_proximal"]
medial = ["polaroid1_medial","polaroid2_medial","polaroid3_medial"]
distal = ["polaroid1_distal","polaroid2_distal","polaroid3_distal"]
p1 = ["control1_piece1","control2_piece1","control3_piece1"]
p2 = ["control1_piece2","control2_piece2","control3_piece2"]
p3 = ["control1_piece3","control2_piece3","control3_piece3"]
proximal_vs_medial = list(itertools.product(proximal, medial))
medial_vs_distal = list(itertools.product(medial, distal))
p1_vs_p2 = list(itertools.product(p1, p2))
p2_vs_p3 = list(itertools.product(p2, p3))
HORIZONTAL_HVGs = {}
# Proximal vs distal regions
# Proximal vs distal regions
# Proximal vs distal regions
proximal_vs_medial_HVGs = {}
for contrast in proximal_vs_medial:
adataContrast = adata[adata.obs["dataset"].isin(list(contrast))].copy()
print(adataContrast.obs.dataset.value_counts())
sc.pp.highly_variable_genes(adataContrast, min_mean=0.0125, max_mean=3, min_disp=0.5)
HVGs = set(adataContrast.var[adataContrast.var.highly_variable].index.tolist())
proximal_vs_medial_HVGs["_".join(contrast)] = HVGs
proximal_vs_medial_HVGs = pd.Series(list(itertools.chain.from_iterable([list(i) for i in list(proximal_vs_medial_HVGs.values())])))
proximal_vs_medial_HVGs = set(proximal_vs_medial_HVGs.value_counts()[proximal_vs_medial_HVGs.value_counts() == 9].index.tolist())
HORIZONTAL_HVGs["proximal_vs_medial_HVGs"] = proximal_vs_medial_HVGs
# medial vs distal regions
# medial vs distal regions
# medial vs distal regions
medial_vs_distal_HVGs = {}
for contrast in medial_vs_distal:
adataContrast = adata[adata.obs["dataset"].isin(list(contrast))].copy()
print(adataContrast.obs.dataset.value_counts())
sc.pp.highly_variable_genes(adataContrast, min_mean=0.0125, max_mean=3, min_disp=0.5)
HVGs = set(adataContrast.var[adataContrast.var.highly_variable].index.tolist())
medial_vs_distal_HVGs["_".join(contrast)] = HVGs
medial_vs_distal_HVGs = pd.Series(list(itertools.chain.from_iterable([list(i) for i in list(medial_vs_distal_HVGs.values())])))
medial_vs_distal_HVGs = set(medial_vs_distal_HVGs.value_counts()[medial_vs_distal_HVGs.value_counts() == 9].index.tolist())
HORIZONTAL_HVGs["medial_vs_distal_HVGs"] = medial_vs_distal_HVGs
# P1 vs P2
# P1 vs P2
# P1 vs P2
p1_vs_p2_HVGs = {}
for contrast in p1_vs_p2:
adataContrast = adata[adata.obs["dataset"].isin(list(contrast))].copy()
print(adataContrast.obs.dataset.value_counts())
sc.pp.highly_variable_genes(adataContrast, min_mean=0.0125, max_mean=3, min_disp=0.5)
HVGs = set(adataContrast.var[adataContrast.var.highly_variable].index.tolist())
p1_vs_p2_HVGs["_".join(contrast)] = HVGs
p1_vs_p2_HVGs = pd.Series(list(itertools.chain.from_iterable([list(i) for i in list(p1_vs_p2_HVGs.values())])))
p1_vs_p2_HVGs = set(p1_vs_p2_HVGs.value_counts()[p1_vs_p2_HVGs.value_counts() == 9].index.tolist())
HORIZONTAL_HVGs["p1_vs_p2_HVGs"] = p1_vs_p2_HVGs
# P2 vs P3
# P2 vs P3
# P2 vs P3
p2_vs_p3_HVGs = {}
for contrast in p2_vs_p3:
adataContrast = adata[adata.obs["dataset"].isin(list(contrast))].copy()
print(adataContrast.obs.dataset.value_counts())
sc.pp.highly_variable_genes(adataContrast, min_mean=0.0125, max_mean=3, min_disp=0.5)
HVGs = set(adataContrast.var[adataContrast.var.highly_variable].index.tolist())
p2_vs_p3_HVGs["_".join(contrast)] = HVGs
p2_vs_p3_HVGs = pd.Series(list(itertools.chain.from_iterable([list(i) for i in list(p2_vs_p3_HVGs.values())])))
p2_vs_p3_HVGs = set(p2_vs_p3_HVGs.value_counts()[p2_vs_p3_HVGs.value_counts() == 9].index.tolist())
HORIZONTAL_HVGs["p2_vs_p3_HVGs"] = p2_vs_p3_HVGs
polaroid1_proximal 401
polaroid1_medial 65
Name: dataset, dtype: int64
extracting highly variable genes
finished (0:00:00)
--> added
'highly_variable', boolean vector (adata.var)
'means', float vector (adata.var)
'dispersions', float vector (adata.var)
'dispersions_norm', float vector (adata.var)
polaroid1_proximal 401
polaroid2_medial 31
Name: dataset, dtype: int64
extracting highly variable genes
finished (0:00:00)
--> added
'highly_variable', boolean vector (adata.var)
'means', float vector (adata.var)
'dispersions', float vector (adata.var)
'dispersions_norm', float vector (adata.var)
polaroid1_proximal 401
polaroid3_medial 7
Name: dataset, dtype: int64
extracting highly variable genes
finished (0:00:00)
--> added
'highly_variable', boolean vector (adata.var)
'means', float vector (adata.var)
'dispersions', float vector (adata.var)
'dispersions_norm', float vector (adata.var)
polaroid2_proximal 531
polaroid1_medial 65
Name: dataset, dtype: int64
extracting highly variable genes
finished (0:00:00)
--> added
'highly_variable', boolean vector (adata.var)
'means', float vector (adata.var)
'dispersions', float vector (adata.var)
'dispersions_norm', float vector (adata.var)
polaroid2_proximal 531
polaroid2_medial 31
Name: dataset, dtype: int64
extracting highly variable genes
finished (0:00:00)
--> added
'highly_variable', boolean vector (adata.var)
'means', float vector (adata.var)
'dispersions', float vector (adata.var)
'dispersions_norm', float vector (adata.var)
polaroid2_proximal 531
polaroid3_medial 7
Name: dataset, dtype: int64
extracting highly variable genes
finished (0:00:00)
--> added
'highly_variable', boolean vector (adata.var)
'means', float vector (adata.var)
'dispersions', float vector (adata.var)
'dispersions_norm', float vector (adata.var)
polaroid3_proximal 183
polaroid1_medial 65
Name: dataset, dtype: int64
extracting highly variable genes
finished (0:00:00)
--> added
'highly_variable', boolean vector (adata.var)
'means', float vector (adata.var)
'dispersions', float vector (adata.var)
'dispersions_norm', float vector (adata.var)
polaroid3_proximal 183
polaroid2_medial 31
Name: dataset, dtype: int64
extracting highly variable genes
finished (0:00:00)
--> added
'highly_variable', boolean vector (adata.var)
'means', float vector (adata.var)
'dispersions', float vector (adata.var)
'dispersions_norm', float vector (adata.var)
polaroid3_proximal 183
polaroid3_medial 7
Name: dataset, dtype: int64
extracting highly variable genes
finished (0:00:00)
--> added
'highly_variable', boolean vector (adata.var)
'means', float vector (adata.var)
'dispersions', float vector (adata.var)
'dispersions_norm', float vector (adata.var)
polaroid1_distal 111
polaroid1_medial 65
Name: dataset, dtype: int64
extracting highly variable genes
finished (0:00:00)
--> added
'highly_variable', boolean vector (adata.var)
'means', float vector (adata.var)
'dispersions', float vector (adata.var)
'dispersions_norm', float vector (adata.var)
polaroid1_medial 65
polaroid2_distal 29
Name: dataset, dtype: int64
extracting highly variable genes
finished (0:00:00)
--> added
'highly_variable', boolean vector (adata.var)
'means', float vector (adata.var)
'dispersions', float vector (adata.var)
'dispersions_norm', float vector (adata.var)
polaroid1_medial 65
polaroid3_distal 17
Name: dataset, dtype: int64
extracting highly variable genes
finished (0:00:00)
--> added
'highly_variable', boolean vector (adata.var)
'means', float vector (adata.var)
'dispersions', float vector (adata.var)
'dispersions_norm', float vector (adata.var)
polaroid1_distal 111
polaroid2_medial 31
Name: dataset, dtype: int64
extracting highly variable genes
finished (0:00:00)
--> added
'highly_variable', boolean vector (adata.var)
'means', float vector (adata.var)
'dispersions', float vector (adata.var)
'dispersions_norm', float vector (adata.var)
polaroid2_medial 31
polaroid2_distal 29
Name: dataset, dtype: int64
extracting highly variable genes
finished (0:00:00)
--> added
'highly_variable', boolean vector (adata.var)
'means', float vector (adata.var)
'dispersions', float vector (adata.var)
'dispersions_norm', float vector (adata.var)
polaroid2_medial 31
polaroid3_distal 17
Name: dataset, dtype: int64
extracting highly variable genes
finished (0:00:00)
--> added
'highly_variable', boolean vector (adata.var)
'means', float vector (adata.var)
'dispersions', float vector (adata.var)
'dispersions_norm', float vector (adata.var)
polaroid1_distal 111
polaroid3_medial 7
Name: dataset, dtype: int64
extracting highly variable genes
finished (0:00:00)
--> added
'highly_variable', boolean vector (adata.var)
'means', float vector (adata.var)
'dispersions', float vector (adata.var)
'dispersions_norm', float vector (adata.var)
polaroid2_distal 29
polaroid3_medial 7
Name: dataset, dtype: int64
extracting highly variable genes
finished (0:00:00)
--> added
'highly_variable', boolean vector (adata.var)
'means', float vector (adata.var)
'dispersions', float vector (adata.var)
'dispersions_norm', float vector (adata.var)
polaroid3_distal 17
polaroid3_medial 7
Name: dataset, dtype: int64
extracting highly variable genes
finished (0:00:00)
--> added
'highly_variable', boolean vector (adata.var)
'means', float vector (adata.var)
'dispersions', float vector (adata.var)
'dispersions_norm', float vector (adata.var)
control1_piece2 47
control1_piece1 32
Name: dataset, dtype: int64
extracting highly variable genes
finished (0:00:00)
--> added
'highly_variable', boolean vector (adata.var)
'means', float vector (adata.var)
'dispersions', float vector (adata.var)
'dispersions_norm', float vector (adata.var)
control2_piece2 73
control1_piece1 32
Name: dataset, dtype: int64
extracting highly variable genes
finished (0:00:00)
--> added
'highly_variable', boolean vector (adata.var)
'means', float vector (adata.var)
'dispersions', float vector (adata.var)
'dispersions_norm', float vector (adata.var)
control3_piece2 124
control1_piece1 32
Name: dataset, dtype: int64
extracting highly variable genes
finished (0:00:00)
--> added
'highly_variable', boolean vector (adata.var)
'means', float vector (adata.var)
'dispersions', float vector (adata.var)
'dispersions_norm', float vector (adata.var)
control2_piece1 54
control1_piece2 47
Name: dataset, dtype: int64
extracting highly variable genes
finished (0:00:00)
--> added
'highly_variable', boolean vector (adata.var)
'means', float vector (adata.var)
'dispersions', float vector (adata.var)
'dispersions_norm', float vector (adata.var)
control2_piece2 73
control2_piece1 54
Name: dataset, dtype: int64
extracting highly variable genes
finished (0:00:00)
--> added
'highly_variable', boolean vector (adata.var)
'means', float vector (adata.var)
'dispersions', float vector (adata.var)
'dispersions_norm', float vector (adata.var)
control3_piece2 124
control2_piece1 54
Name: dataset, dtype: int64
extracting highly variable genes
finished (0:00:00)
--> added
'highly_variable', boolean vector (adata.var)
'means', float vector (adata.var)
'dispersions', float vector (adata.var)
'dispersions_norm', float vector (adata.var)
control3_piece1 133
control1_piece2 47
Name: dataset, dtype: int64
extracting highly variable genes
finished (0:00:00)
--> added
'highly_variable', boolean vector (adata.var)
'means', float vector (adata.var)
'dispersions', float vector (adata.var)
'dispersions_norm', float vector (adata.var)
control3_piece1 133
control2_piece2 73
Name: dataset, dtype: int64
extracting highly variable genes
finished (0:00:00)
--> added
'highly_variable', boolean vector (adata.var)
'means', float vector (adata.var)
'dispersions', float vector (adata.var)
'dispersions_norm', float vector (adata.var)
control3_piece1 133
control3_piece2 124
Name: dataset, dtype: int64
extracting highly variable genes
finished (0:00:00)
--> added
'highly_variable', boolean vector (adata.var)
'means', float vector (adata.var)
'dispersions', float vector (adata.var)
'dispersions_norm', float vector (adata.var)
control1_piece3 55
control1_piece2 47
Name: dataset, dtype: int64
extracting highly variable genes
finished (0:00:00)
--> added
'highly_variable', boolean vector (adata.var)
'means', float vector (adata.var)
'dispersions', float vector (adata.var)
'dispersions_norm', float vector (adata.var)
control1_piece2 47
control2_piece3 41
Name: dataset, dtype: int64
extracting highly variable genes
finished (0:00:00)
--> added
'highly_variable', boolean vector (adata.var)
'means', float vector (adata.var)
'dispersions', float vector (adata.var)
'dispersions_norm', float vector (adata.var)
control3_piece3 139
control1_piece2 47
Name: dataset, dtype: int64
extracting highly variable genes
finished (0:00:00)
--> added
'highly_variable', boolean vector (adata.var)
'means', float vector (adata.var)
'dispersions', float vector (adata.var)
'dispersions_norm', float vector (adata.var)
control2_piece2 73
control1_piece3 55
Name: dataset, dtype: int64
extracting highly variable genes
finished (0:00:00)
--> added
'highly_variable', boolean vector (adata.var)
'means', float vector (adata.var)
'dispersions', float vector (adata.var)
'dispersions_norm', float vector (adata.var)
control2_piece2 73
control2_piece3 41
Name: dataset, dtype: int64
extracting highly variable genes
finished (0:00:00)
--> added
'highly_variable', boolean vector (adata.var)
'means', float vector (adata.var)
'dispersions', float vector (adata.var)
'dispersions_norm', float vector (adata.var)
control3_piece3 139
control2_piece2 73
Name: dataset, dtype: int64
extracting highly variable genes
finished (0:00:00)
--> added
'highly_variable', boolean vector (adata.var)
'means', float vector (adata.var)
'dispersions', float vector (adata.var)
'dispersions_norm', float vector (adata.var)
control3_piece2 124
control1_piece3 55
Name: dataset, dtype: int64
extracting highly variable genes
finished (0:00:00)
--> added
'highly_variable', boolean vector (adata.var)
'means', float vector (adata.var)
'dispersions', float vector (adata.var)
'dispersions_norm', float vector (adata.var)
control3_piece2 124
control2_piece3 41
Name: dataset, dtype: int64
extracting highly variable genes
finished (0:00:00)
--> added
'highly_variable', boolean vector (adata.var)
'means', float vector (adata.var)
'dispersions', float vector (adata.var)
'dispersions_norm', float vector (adata.var)
control3_piece3 139
control3_piece2 124
Name: dataset, dtype: int64
extracting highly variable genes
finished (0:00:00)
--> added
'highly_variable', boolean vector (adata.var)
'means', float vector (adata.var)
'dispersions', float vector (adata.var)
'dispersions_norm', float vector (adata.var)
HORIZONTAL_HVGs = set.union(*list(HORIZONTAL_HVGs.values()))
JointHVGs = list(HORIZONTAL_HVGs.union(VERTICAL_HVGs))
adata.var["highly_variable"] = adata.var_names.isin(JointHVGs)
adata.var["highly_variable"].sum()
2250
sc.pp.pca(adata, use_highly_variable=True)
computing PCA
on highly variable genes
with n_comps=50
finished (0:00:01)
sc.pp.neighbors(adata, n_neighbors=50, n_pcs=10)
computing neighbors
using 'X_pca' with n_pcs = 10
finished: added to `.uns['neighbors']`
`.obsp['distances']`, distances for each pair of neighbors
`.obsp['connectivities']`, weighted adjacency matrix (0:00:01)
sc.tl.leiden(adata, resolution=1, key_added="subLeiden")
running Leiden clustering
finished: found 11 clusters and added
'subLeiden', the cluster labels (adata.obs, categorical) (0:00:00)
sc.tl.umap(adata)
computing UMAP
finished: added
'X_umap', UMAP coordinates (adata.obsm) (0:00:04)
sc.tl.draw_graph(adata, n_jobs=4)
drawing single-cell graph using layout 'fa'
finished: added
'X_draw_graph_fa', graph_drawing coordinates (adata.obsm) (0:00:08)
sc.tl.diffmap(adata)
computing Diffusion Maps using n_comps=15(=n_dcs)
computing transitions
finished (0:00:00)
eigenvalues of transition matrix
[1. 0.99094236 0.96714073 0.9477798 0.92777807 0.9224269
0.91350514 0.90595865 0.90286225 0.8806806 0.86221296 0.8587253
0.85233545 0.83723557 0.8283667 ]
finished: added
'X_diffmap', diffmap coordinates (adata.obsm)
'diffmap_evals', eigenvalues of transition matrix (adata.uns) (0:00:00)
sc.pl.umap(adata, color=["organoid","type","dataset","subLeiden","MKI67"], size = 100, add_outline = True,outline_width=(0.2, 0.05), ncols=3)
sc.pl.diffmap(adata, color=["organoid","type","dataset","subLeiden","MKI67","VIM","DCX","GAP43","PAX6","FOXG1","FGF8"], size = 50, add_outline = True,outline_width=(0.2, 0.05), ncols=3)
sc.pl.draw_graph(adata, color=["organoid","type","dataset","subLeiden","MKI67","VIM","DCX","GAP43","PAX6","FOXG1","FGF8"], size = 50, add_outline = True,outline_width=(0.2, 0.05), ncols=3)
sc.pl.draw_graphper type
sc.tl.embedding_density(adata, basis='umap', groupby='type')
sc.pl.embedding_density(adata, basis='umap', key='umap_density_type')
computing density on 'umap'
--> added
'umap_density_type', densities (adata.obs)
'umap_density_type_params', parameter (adata.uns)
sc.tl.embedding_density(adata, basis='umap', groupby='region')
sc.pl.embedding_density(adata, basis='umap', key='umap_density_region')
computing density on 'umap'
--> added
'umap_density_region', densities (adata.obs)
'umap_density_region_params', parameter (adata.uns)
sc.tl.embedding_density(adata, basis='umap', groupby='organoid')
sc.pl.embedding_density(adata, basis='umap', key='umap_density_organoid')
computing density on 'umap'
--> added
'umap_density_organoid', densities (adata.obs)
'umap_density_organoid_params', parameter (adata.uns)
adata.write_h5ad(outdir+FinalLeaf+"/4B_Progenitors_DA.h5ad")